home *** CD-ROM | disk | FTP | other *** search
/ BUG 10 / BUGCD1998_01.ISO / runtime / _nt4sp3 / nt4sp3_i.exe / [0] / netcfg.dll / TEXT / DEPRULE < prev    next >
Text File  |  1997-05-01  |  11KB  |  681 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.    
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.    
  47.    
  48.    
  49.    
  50. ( (stoplist SvcNameCi StopList)
  51.     (assertgroups)                      
  52.     (not (retractstops))                
  53.     (string_upper SvcNameCi SvcName)    
  54.     (assertz (stop SvcName 100))        
  55.     (alldependencies SvcName 100)       
  56.     (not (specialstops SvcName 100))    
  57.     (basestoplevel 100 Level)           
  58.     (orderstops () Level StopList)      
  59. )
  60.  
  61.    
  62.    
  63.    
  64. ( (alldependencies SvcName Level)
  65.      (stopupper SvcName Level)              
  66.      (iplus Level 1 NextLevel)              
  67.      (svcinfo SvcName SvcList GroupList)    
  68.      (stopsvclist NextLevel SvcList)        
  69.      (stopgrouplist NextLevel GroupList)    
  70. )
  71.  
  72.    
  73.    
  74.    
  75. ( (stopgrouplist Level ())
  76.     (cut)                               
  77. )
  78. ( (stopgrouplist Level (Group|T))       
  79.     (not (stopgroup Level Group))       
  80.     (stopgrouplist Level T)             
  81. )
  82.  
  83. ( (stopgroup Level Group)               
  84.     (group SvcName Group)               
  85.     (stopsvc SvcName Level down)        
  86.     (fail)                              
  87. )
  88.  
  89.    
  90.    
  91.    
  92.    
  93. ( (stopsvclist Level ())
  94.    (cut)                                
  95. )
  96. ( (stopsvclist Level (SvcName|T))       
  97.    (stopsvc SvcName Level down)
  98.    (stopsvclist Level T)                
  99. )
  100.  
  101.    
  102.    
  103.    
  104.    
  105.    
  106.    
  107.    
  108. ( (stopsvc SvcName Level _)             
  109.     (stop SvcName Level)                
  110.     (cut)                               
  111. )
  112. ( (stopsvc SvcName Level down)          
  113.     (stop SvcName OtherLevel)           
  114.     (iless Level OtherLevel)            
  115.     (cut)                               
  116. )
  117. ( (stopsvc SvcName Level down)          
  118.     (stop SvcName OtherLevel)           
  119.     (retract (stop SvcName OtherLevel)) 
  120.     (assertz (stop SvcName Level))
  121.     (cut)
  122. )
  123. ( (stopsvc SvcName Level down)          
  124.     (assertz (stop SvcName Level))      
  125.     (alldependencies SvcName Level)     
  126.     (cut)
  127. )
  128. ( (stopsvc SvcName Level up)            
  129.     (stop SvcName OtherLevel)           
  130.     (iless OtherLevel Level)            
  131.     (cut)                               
  132. )
  133. ( (stopsvc SvcName Level up)            
  134.     (stop SvcName OtherLevel)           
  135.     (retract (stop SvcName OtherLevel)) 
  136.     (assertz (stop SvcName Level))
  137.     (cut)
  138. )
  139. ( (stopsvc SvcName Level up)            
  140.     (assertz (stop SvcName Level))      
  141.     (stopupper SvcName Level)           
  142. )
  143.  
  144.     
  145.     
  146.     
  147. ( (svckey Svc Key)
  148.      (string_concat "system\currentcontrolset\services\" Svc Keyname)
  149.      (regopenkey machine Keyname Key)
  150. )
  151.  
  152.     
  153.     
  154.     
  155.     
  156. ( (svcinfo Svc SvcList GroupList)
  157.      (svckey Svc SvcKey)
  158.      (or (regqueryvalue SvcKey "DependOnService" SvcListCi) (eq SvcListCi ()))
  159.      (or (regqueryvalue SvcKey "DependOnGroup" GroupListCi) (eq GroupListCi ()))
  160.      (regclosekey SvcKey)
  161.      (upcaseList SvcListCi SvcList)
  162.      (upcaseList GroupListCi GroupList)
  163.      (cut)
  164. )
  165.  
  166.     
  167.     
  168.     
  169.     
  170.     
  171.     
  172. ( (assertgroups)
  173.      (not (retractgroups))
  174.      (not (retractdepends))
  175.      (regopenkey machine "system\currentcontrolset\services" Key)
  176.      (not (enumGroups 0 Key))
  177.      (regclosekey Key)
  178. )
  179.  
  180.     
  181.     
  182.     
  183. ( (retractgroups)
  184.      (retract (group _ _))
  185.      (fail)
  186. )
  187.  
  188.     
  189.     
  190.     
  191. ( (retractdepends)
  192.      (retract (depends _ _ _))
  193.      (fail)
  194. )
  195.  
  196.     
  197.     
  198.     
  199. ( (enumGroups Index Key)
  200.      (regenumkey Key Index SvcNameCi)
  201.      (string_upper SvcNameCi SvcName)
  202.      (not (getGroup Key SvcName))
  203.      (iplus Index 1 Newindex)
  204.      (enumGroups Newindex Key)
  205. )
  206.  
  207.     
  208.     
  209.     
  210.     
  211. ( (getGroup Key SvcName)
  212.      (regopenkey Key SvcName Svckey)
  213.      (or (regqueryvalue Svckey "Group" GroupCi) (eq GroupCi ""))
  214.      (regclosekey Svckey)
  215.      (getDepends SvcName)
  216.      (not (eq GroupCi ""))
  217.      (string_upper GroupCi Group)
  218.      (assertz (group SvcName Group))
  219.      (fail)
  220. )
  221.  
  222. ( (getDepends SvcName)
  223.      (svcinfo SvcName SvcList GroupList)
  224.      (assertDependList service SvcName SvcList)
  225.      (assertDependList group SvcName GroupList)
  226. )
  227.  
  228.     
  229.     
  230.     
  231. ( (assertDependList Type SvcName ())
  232.      (cut)
  233. )
  234. ( (assertDependList Type SvcName (H|T))
  235.      (depends SvcName Type H)
  236.      (cut)
  237.      (assertDependList Type SvcName T)
  238. )
  239. ( (assertDependList Type SvcName (H|T))
  240.      (assertz (depends SvcName Type H))
  241.      (assertDependList Type SvcName T)
  242. )
  243.  
  244.     
  245.     
  246.     
  247. ( (retractstops)
  248.      (retract (stop _ _))
  249.      (fail)
  250. )
  251.  
  252.     
  253.     
  254.     
  255.     
  256.     
  257.     
  258.     
  259.     
  260.     
  261.     
  262.     
  263.     
  264. ( (orderstops L Level L)                
  265.      (not (stop _ Level))               
  266.      (cut)
  267. )
  268. ( (orderstops Inlist Level OutList)             
  269.      (findall Sname (stop Sname Level) Slist)   
  270.      (append Inlist Slist NewList)              
  271.      (iplus Level 1 NewLevel)                   
  272.      (orderstops NewList NewLevel OutList)      
  273. )
  274.  
  275.  
  276.      
  277.      
  278.      
  279.      
  280. ( (basestoplevel Level Level)
  281.      (iminus Level 1 TestLevel)
  282.      (not (stop _ TestLevel))
  283.      (cut)
  284. )
  285. ( (basestoplevel Level LowestLevel)
  286.      (iminus Level 1 NextLevel)
  287.      (basestoplevel NextLevel LowestLevel)
  288. )
  289.  
  290.     
  291.     
  292.     
  293.     
  294.     
  295.     
  296. ( (specialstops SvcName Level)
  297.     (iminus Level 1 NewLevel)
  298.     (magicStop SvcName SvcToStop)
  299.     (alldependencies SvcToStop NewLevel)
  300.     (fail)
  301. )
  302.  
  303. (magicStop "LANMANWORKSTATION" "NETDDE")
  304.  
  305.     
  306.     
  307.     
  308.     
  309. ( (upcaseList () ())
  310.    (cut)
  311. )
  312. ( (upcaseList (H|T) (HU|TU))
  313.     (string_upper H HU)
  314.     (upcaseList T TU)
  315. )
  316.  
  317. ( (stopupper SvcName Level)
  318.     (findall Sname (depends Sname service SvcName) SvcList)
  319.     (iminus Level 1 NewLevel)
  320.     (stopupperlist SvcList NewLevel)
  321. )
  322. ( (stopupperlist () _)
  323.     (cut)
  324. )
  325. ( (stopupperlist (SvcName|T) Level)
  326.     (stopsvc SvcName Level up)
  327.     (stopupperlist T Level)
  328. )
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345. ( (printif List)
  346.     (printctl on)
  347.     (cut)
  348.     (printall List)
  349. )
  350. ( (printif _) )
  351.  
  352. ( (displayif Thing)
  353.     (printctl on)
  354.     (cut)
  355.     (display Thing)
  356. )
  357. ( (displayif _) )
  358.  
  359. ( (pctl on)
  360.     (cut)
  361.     (asserta (printctl on))
  362. )
  363. ( (pctl off)
  364.     (retract (printctl _))
  365. )
  366.  
  367. ( (pstdout on)
  368.     (cut)
  369.     (asserta (printstdout on))
  370. )
  371. ( (pstdout off)
  372.     (retract (printstdout _))
  373. )
  374.  
  375. ( (statctl on)
  376.     (cut)
  377.     (asserta (statctl on))
  378. )
  379. ( (statctl off)
  380.     (retract (statctl _))
  381. )
  382.  
  383. ( (tostring nl "")
  384.     (cut)
  385.     (tracenl)
  386.     
  387. )
  388.  
  389. ( (tostring X X)
  390.     (string X)
  391.     (cut)
  392. )
  393. ( (tostring X Y)
  394.     (atom X)
  395.     (cut)
  396.     (string_from X Y)
  397. )
  398. ( (tostring X Y)
  399.     (integer X)
  400.     (cut)
  401.     (string_from X Y)
  402. )
  403. ( (tostring X "<_var_>")
  404.     (var X)
  405. )
  406. (printall ())
  407.  
  408. ( (printall (H|T))
  409.     (tostring H Sh)
  410.     (tracewrites Sh)
  411.     
  412.     (printall T)
  413. )
  414.  
  415.  
  416.  
  417.  
  418. ((tracestat)
  419.  (statctl on)
  420.  (cut)
  421.  (space_left Heap Str Dyn Subst Trail Temp)
  422.  (alloc_percent 1 HeapPct)
  423.  (dbg_remains Heap HeapPct "heap")
  424.  (alloc_percent 4 StrPct)
  425.  (dbg_remains Str StrPct "strings")
  426.  (alloc_percent 2 DynPct)
  427.  (dbg_remains Dyn DynPct "contol stack")
  428.  (alloc_percent 6 SubstPct)
  429.  (dbg_remains Subst SubstPct "substitutions")
  430.  (alloc_percent 5 TrailPct)
  431.  (dbg_remains Trail TrailPct "trail")
  432.  (alloc_percent 3 TempPct)
  433.  (dbg_remains Temp TempPct "temp")
  434. )
  435.  
  436. ((tracestat))
  437.  
  438. ((dbg_remains Bytes Percent Zone)
  439.  (printall ("NCPA/SP: There remains " Bytes " bytes for the " Zone
  440.              "; percent used: " Percent "%" nl))
  441. )
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. ((is_list L )(nonvar L)(eq L (X|Y)))
  451. (is_list ())
  452.  
  453.  
  454. ((not X)
  455.  X (cut) (fail))
  456. ((not X))
  457.  
  458.  
  459. ((member X (X|Y))
  460. )
  461. ((member X (A|B))
  462.  (member X B)
  463. )
  464.  
  465.  
  466. ((eq X X))
  467.  
  468.  
  469. ((diff X X)(cut)(fail)
  470. )
  471. ((diff X Y))
  472.  
  473.  
  474. ((append (A|X) Y (A|Z))
  475.  (append X Y Z)
  476. )
  477. ((append () X X))
  478.  
  479.  
  480.  
  481. ((nrev (X|Y) U)
  482.  (nrev Y L)(append L (X) U)
  483. )
  484. ((nrev ()()))
  485.  
  486.  
  487. ((bench)
  488.  (clock T1)
  489.  (n_unifications Nu1)
  490.  (nrev (1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0)L)
  491.  (clock T2)
  492.  (n_unifications Nu2)
  493.  (iminus T2 T1 Tdiff)
  494.  (iminus Nu2 Nu1 Nudiff)
  495.  (display L)(nl)
  496.  (display Nudiff)(writes " unifications in ")
  497.  (display Tdiff)(writes " microseconds.")(nl)
  498. )
  499.  
  500.  
  501. ((all_facts (Predicate|Args) List)
  502.  (first_clause Predicate Clause)
  503.  (cut)
  504.  (allfacts1 Clause Args List)
  505. )
  506. ((all_facts X ()))
  507.  
  508. ((allfacts1 Clause Args ((Pred|ArgsHead)|L))
  509.  (body_clause Clause ((Pred|ArgsHead)))
  510.  (unifies ArgsHead Args)
  511.  (cut)
  512.  (allfacts2  Clause Args L)
  513. )
  514.  
  515. ((allfacts2 Clause Args L)
  516.  (next_clause Clause Clause2)
  517.  (cut)
  518.  (allfacts1 Clause2 Args L)
  519. )
  520. ((allfacts2 Clause Args ()))
  521.  
  522.  
  523.  
  524.  
  525. ((clause (Predicate|Args) Goals)
  526.  (atom Predicate)
  527.  (cut)
  528.  (choose_clause Predicate Clause)
  529.  (body_clause Clause ((Predicate|Args)|Goals))
  530. )
  531.  
  532. ((clause (Predicate|Args) Goals)
  533.  (predicate Predicate)
  534.  (choose_clause Predicate Clause)
  535.  (body_clause Clause ((Predicate|Args)|Goals))
  536. )
  537.  
  538.  
  539. ((predicate P) 
  540.  (first_predicate Pred1) 
  541.  (predicates_after Pred1 P )
  542. )
  543.  
  544. ((predicates_after P P))
  545. ((predicates_after Pred P)
  546.  (next_predicate Pred Next)
  547.  (predicates_after Next P)
  548. )
  549.  
  550. ((choose_clause Predicate Clause)
  551.  (first_clause Predicate Clause1)
  552.  (clause_after Clause1 Clause)
  553. )
  554. (clause_after Clause1 Clause1)
  555. ((clause_after Clause1 Clause)
  556.  (next_clause Clause1 Clause2)
  557.  (clause_after Clause2 Clause)
  558. )
  559.  
  560.  
  561. ((unifies X Y)(diff X Y)(cut)(fail))
  562. ((unifies X Y))
  563.  
  564.  
  565. ((retract (Head | Tail))
  566.  (atom Head)
  567.  (retract1 Head Tail)
  568. )
  569.  
  570. ((retract1 Predicate Tail)
  571.  (find_clause Predicate Clause)
  572.  (body_clause Clause ((Predicate | Tail)) )
  573.  (remove_clause Clause)
  574. )
  575.  
  576. ((find_clause Predicate Clause)
  577.  (first_clause Predicate Clause1)
  578.  (find_clause1 Clause1 Clause)
  579. )
  580.  
  581. (find_clause1 Clause_a Clause_a)
  582. ((find_clause1 Clause_a Clause)
  583.  (next_clause Clause_a Clause_b)
  584.  (find_clause1 Clause_b Clause)
  585. )
  586.  
  587.  
  588.  
  589. ((and))
  590. ((and X | Y)
  591.  X
  592.  (and Y)
  593. )
  594.  
  595. ((binary_or X _) X)
  596. ((binary_or _ Y) Y)
  597.  
  598.  
  599. ((or X|_) X)
  600. ((or _|Y)(or | Y))
  601.  
  602.  
  603. ((repeat))
  604. ((repeat)(repeat))
  605.  
  606.  
  607. ((statistics)
  608.  (space_left Heap Str Dyn Subst Trail Temp)
  609.  (there_remains Heap "heap")
  610.  (there_remains Str "strings")
  611.  (there_remains Dyn "contol stack")
  612.  (there_remains Subst "substitutions")
  613.  (there_remains Trail "trail")
  614.  (there_remains Temp "temp")
  615. )
  616.  
  617. ((there_remains Bytes Zone)
  618.  (writes "There remains ")
  619.  (display Bytes)
  620.  (writes " bytes for the ")
  621.  (writes Zone)
  622.  (writes ".")
  623.  (nl)
  624. )
  625.  
  626.  
  627. (list_nth 0 (X|_) X)
  628. ((list_nth N (_|Y) X)
  629.  (iminus N 1 N-1)
  630.  (list_nth N-1 Y X)
  631. )
  632.  
  633.  
  634.  
  635.  
  636. ((sum 0 )(cut))
  637. ((sum S X|Y)
  638.  (sum S1| Y)
  639.  (iplus S1 X S)
  640. )
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647. ((findall X G _)
  648.  
  649.  (temp_asserta (found mark))
  650.  G
  651.  (temp_asserta (found X))
  652.  (fail)
  653. )
  654. ((findall _ _ L)
  655.  (collect_found () M)
  656.  (cut)
  657.  (eq L M)
  658.  
  659. )
  660.  
  661. ((collect_found S L)
  662.  (getnext X)
  663.  (cut)
  664.  (collect_found (X|S) L)
  665. )
  666. (collect_found L L)
  667.  
  668. ((getnext X)
  669.  (retract (found X))
  670.  (cut)
  671.  (diff X mark)
  672. )
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.